Many software applications require intensive data handling. Typically, a database, such as a structured query language (SQL) database, is used to store the necessary data. In many applications, a user must initialize and start the database prior to running the application. SQL databases are well known for standard data storage and handling. However, many drawbacks exist when using the typical relational SQL databases.
One such drawback arises from the requirement of many applications that the database be loaded/created prior to starting the application program. Running both the database and the application program simultaneously causes heavy CPU demands and uses large amounts of memory resources. This can often cause the operation of the application program to slow down.
Furthermore, with each new software release, software developers must create new SQL scripts to upgrade the associated database. This creates a significant amount of extra work and often the upgrade can be very difficult as well as time consuming and costly. For example, if a user wishes to add a new column to one database table, the user must ensure the integrity of related table data. Such a process is prone to introducing software bugs.
Extensible markup language (XML) is becoming increasingly popular for data storage and manipulation. XML provides a common syntax for expressing data in a hierarchical manner. Relational databases are known types of databases which organize a collection of data items as a set of formally-described tables from which data can be accessed and reassembled. However, typical SQL based relational databases are unable to efficiently handle the XML data format.
Accordingly, there exists a need for a database to efficiently handle the XML data format.